home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
pao
/
towns
/
cdplay
/
src
/
inoutp.asm
< prev
next >
Wrap
Assembly Source File
|
1991-10-18
|
3KB
|
131 lines
;==============================================================================
; << 386ASM V2.0 >> for FM TOWNS
;==============================================================================
.386p
PAGE 60,132
NAME INOUTP
TITLE inp outp function
;==============================================================================
; ポート入出力
;
; < High C からの呼出形式 >
; -----------------------------------------
; unsigned short int port ;
; unsigned short int value ;
; value = inp( port ) ;
; -----------------------------------------
; unsigned short int port ;
; unsigned short int value ;
; outp( port, value ) ;
; -----------------------------------------
;
; < note > : TABS = 4
;
; < History >
; 1991.03.06 : CREATE
; 1991.04.13 : 清書
;
; Programmed by Y.Hirata ( Nifty-ID : NAB03321 )
;==============================================================================
;
INCLUDE hc.inc ;
;
CGROUP GROUP pmcode, CODE ;
;
;--------------------------------------------
public inp ; ポート入力
public outp ; ポート出力
;--------------------------------------------
;
;////////////////////////////////////////////
; ネイティブ部
;////////////////////////////////////////////
;
pmcode SEGMENT ;
ASSUME cs:CGROUP ;
;
;============================================
; ポート入力
;
; < High C からの呼出形式 >
; -----------------------------------------
; unsigned short port ;
; unsigned short value ;
; value = inp( port ) ;
; -----------------------------------------
;
; < History >
; 1991.03.06 : CREATE
;
; Programed by Y.Hirata
;============================================
ALIGN 4 ; dword boundary
inp PROC NEAR ;
;
#inparm1 EQU SS:[ebp+8] ; 入力ポート
;
push ebp ;
mov ebp,esp ; スタックフレーム形成
;
push edx ;
;
mov dx,#inparm1 ;
xor eax,eax ;
cli ; 割り込み禁止
in al,dx ; ポート入力
sti ; 割り込み許可
;
inp_end: ;
pop edx ;
;
pop ebp ; スタックフレーム開放
ret ;
;
inp ENDP ;
;
;============================================
; ポート出力
;
; < High C からの呼出形式 >
; -----------------------------------------
; unsigned short port ;
; unsigned short value ;
; outp( port, value ) ;
; -----------------------------------------
;
; < History >
; 1991.03.06 : CREATE
;
; Programed by Y.Hirata
;============================================
ALIGN 4 ; dword boundary
outp PROC NEAR ;
;
#inparm1 EQU SS:[ebp+8] ; 出力ポート(第一引数)
#inparm2 EQU SS:[ebp+12] ; 値 (第二引数)
;
push ebp ;
mov ebp,esp ; スタックフレーム形成
;
push edx ;
;
mov dx,#inparm1 ;
mov al,#inparm2 ;
cli ; 割り込み禁止
out dx,al ; ポート出力
sti ; 割り込み許可
xor eax,eax ;
;
outp_end: ;
pop edx ;
;
pop ebp ; スタックフレーム開放
ret ;
;
outp ENDP ;
;
pmcode ENDS ;
;
END